package conditionsAPI;

public abstract class SimpleDomainCondition extends DomainCondition{

	private Condition simpleCondition;
	
	public SimpleDomainCondition(String conditionId) throws ConditionDuplicatedException{
		this.simpleCondition = new Condition(conditionId);
		this.simpleCondition.setDomainCondition(this);
	}
	
	protected void resetState(){
		simpleCondition.setState(resetToInitialState());
	}
	
	@Override
	protected Condition getCondition(){
		return this.simpleCondition;
	}
	
	/**
	 * Metodo que se llama al inicializar una nueva validacion. Si la condicion guarda un
	 * estado interno mientras se recorre la coleccion debe limpiarlo en la
	 * implementacion de este metodo.
	 * @return boolean indica el estado de validez inicial de la condicion.
	 */
	protected abstract boolean resetToInitialState();
}
